2003年07月21日
川俣晶の縁側ソフトウェアりすと亭開発日誌 total 2112 count

祭日だというのにバグ取りに追いまくられる日

Written By: 川俣 晶連絡先

 今日は月曜日ですが祭日です。家を出るとき母に言われるまで気付いていませんでした。

 まあ、零細企業の経営者に休日は無いってことなので、大した問題ではありませんが。(とほほ)

 今日は、まず、タイムゾーン関係のテストをもっと手厚くする必要があると言うことで、それを行おうとしたところ。致命的な問題を発見しました。時差というものは、1時間ごとだとばかり思っていたら、そうではないのです。30分や15分という時差を持った地域があるそうです。

 たとえば、こういうところが、そういう例だそうです。(時差は日本時間との差)

アフガニスタン:-4時間30分、

インド:-3時間30分、

ネパール:-3時間15分

 こういうのは正常に扱えないので、大慌てで、1時間ごとから1分ごとの処理に変更しました。

 それに対応するテストも作成しましたが、何せ、時差については素人ですから、本当に正しいかどうかも自身がありません。テストデータをこのコンテンツの最後に付加しますので、知識があってお暇のある人は、ぜひチェックしてみてください。

 それから、昨日は日本語XMLユーザーグループのメーリングリストサイト( https://www2.xml.gr.jp/ )も膨大な手間を時間を費やして(なぜなら資源が乏しいサーバなので、ファイルを一時別サーバに待避させてから.NET Framework 1.1を入れる必要があった!)、りすと亭を最新ベータ版に入れ替えました。ところが、いきなり、表紙ページの表示が非常に遅いという現象が起きていました。とほほと思いながら、今日はそれも調査しました。その結果、リスト板に登録されたメンバー数が多いとメンバー数を得る処理が非常に重くなるということが分かりました。1メンバー1ファイルとして記録されていますが、その一覧を得る処理が重いと言うことです。従来は総メンバー数が重要な意味を持つ処理が無かったので、特に大きな問題になっていませんでした。しかし、表紙にこの数を表示するようになったため、問題として浮かび上がったのでした。この問題は、人数をメモリ上にキャッシュして持つことで解決しました。

 以上の2つの問題だけでも、かなり大変でしたが、そのあと、公開リリースとして、Beta-028を作成して公開しました( https://www.piedey.co.jp/listtei/download.html )。

 とはいえ、まだ作業に残っているものがあります。まだ終わりではありません。頑張らねば。

 以下はテストデータについての話。

 以下は、今日追加したタイムゾーン処理用のテストデータです。

 test1aのように最後にaが付く文字列が期待される結果。4桁の年+2桁の月+2桁の日+2桁の時(24時間制)+2桁の分+2桁の秒の文字列です。日本での時刻(JST)です。

 test1bのように最後にbが付くのが処理対象の日付時刻です。

 全部で15ケースあります。

 一応、一生懸命調べながら作成したので合っていると思いますが、もし間違いがあればご連絡下さい。このテストデータそのものは、(あまり居ないとは思いますが)、もし使いたい人がいたら自由に使って構いません。特に連絡や許諾などは不用です。

const string test1a = "20030721134300";

const string test1b = "21 Jul 2003 09:13:00 +0430";

const string test2a = "20030721134400";

const string test2b = "21 Jul 2003 10:29:00 +0545";

const string test3a = "20030721135000";

const string test3b = "21 Jul 2003 04:50:00 +0000";

const string test4a = "20030721135000";

const string test4b = "21 Jul 2003 04:50:00 -0000";

const string test5a = "20030721135000";

const string test5b = "21 Jul 2003 04:50:00 UT";

const string test6a = "20030721135000";

const string test6b = "21 Jul 2003 04:50:00 GMT";

const string test7a = "20030721135000";

const string test7b = "20 Jul 2003 23:50:00 -0500";

const string test8a = "20030721135000";

const string test8b = "20 Jul 2003 23:50:00 EST";

const string test9a = "20030721125000";

const string test9b = "20 Jul 2003 23:50:00 EDT";

const string test10a = "20030721145000";

const string test10b = "20 Jul 2003 23:50:00 CST";

const string test11a = "20030721135000";

const string test11b = "20 Jul 2003 23:50:00 CDT";

const string test12a = "20030721155000";

const string test12b = "20 Jul 2003 23:50:00 MST";

const string test13a = "20030721145000";

const string test13b = "20 Jul 2003 23:50:00 MDT";

const string test14a = "20030721165000";

const string test14b = "20 Jul 2003 23:50:00 PST";

const string test15a = "20030721155000";

const string test15b = "20 Jul 2003 23:50:00 PDT";